#ifndef ACTIONCONTROLLER_H
#define ACTIONCONTROLLER_H

#include "actions/action.h"
#include "gui/graphicview.h"

namespace actions
{
    /**
    *   Appliction Functionality controller
    */
	class ActionController
	{
	    gui::GraphicView* view;

	    Action* action;

	    int current_step;
	    int step_count;

	public:
		ActionController(gui::GraphicView* view);
		virtual ~ActionController();

		Action* getAction()const { return action; }

        bool isCompleted()const;
        int getStepCount()const { return step_count; }
        int getCurrentStep()const { return current_step; }



        void cancel();

//		virtual void executeStep();

	protected:
        gui::GraphicView* getGraphicView()const {return view;}

	private:
	};
}

#endif // ACTION_H
